queue a draw on the parent_menu_item of this menu item's menu, to enable
authorMichael Natterer <mitch@imendio.com>
Mon, 29 Jan 2007 15:45:18 +0000 (15:45 +0000)
committerMichael Natterer <mitch@src.gnome.org>
Mon, 29 Jan 2007 15:45:18 +0000 (15:45 +0000)
2007-01-29  Michael Natterer  <mitch@imendio.com>

* gtk/gtkmenuitem.c (gtk_menu_item_select)
(gtk_menu_item_deselect): queue a draw on the parent_menu_item of
this menu item's menu, to enable themeing menu items depending on
whether something is selected in their submenu (patch taken from
maemo-gtk).

svn path=/trunk/; revision=17234

ChangeLog
gtk/gtkmenuitem.c

index a8809cf8cc97338f18c66d005fa1f01f77f238f8..1bd63a817303ed3473c1de2b7a19594a0203f8b4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2007-01-29  Michael Natterer  <mitch@imendio.com>
+
+       * gtk/gtkmenuitem.c (gtk_menu_item_select)
+       (gtk_menu_item_deselect): queue a draw on the parent_menu_item of
+       this menu item's menu, to enable themeing menu items depending on
+       whether something is selected in their submenu (patch taken from
+       maemo-gtk).
+
 2007-01-28  Matthias Clasen  <mclasen@redhat.com>
 
        * gtk/gtktoolbar.c: Reinstate gtk_toolbar_content_new_compatibility()
index 35e5bff58a085f1bac8093d836a455e9b89b7fd0..03855d699954ae7ab942643236ae1e0099eba5ec 100644 (file)
@@ -385,16 +385,38 @@ void
 gtk_menu_item_select (GtkMenuItem *menu_item)
 {
   g_return_if_fail (GTK_IS_MENU_ITEM (menu_item));
-  
+
   gtk_item_select (GTK_ITEM (menu_item));
+
+  /* Enable themeing of the parent menu item depending on whether
+   * something is selected in its submenu
+   */
+  if (GTK_IS_MENU (GTK_WIDGET (menu_item)->parent))
+    {
+      GtkMenu *menu = GTK_MENU (GTK_WIDGET (menu_item)->parent);
+
+      if (menu->parent_menu_item)
+        gtk_widget_queue_draw (GTK_WIDGET (menu->parent_menu_item));
+    }
 }
 
 void
 gtk_menu_item_deselect (GtkMenuItem *menu_item)
 {
   g_return_if_fail (GTK_IS_MENU_ITEM (menu_item));
-  
+
   gtk_item_deselect (GTK_ITEM (menu_item));
+
+  /* Enable themeing of the parent menu item depending on whether
+   * something is selected in its submenu
+   */
+  if (GTK_IS_MENU (GTK_WIDGET (menu_item)->parent))
+    {
+      GtkMenu *menu = GTK_MENU (GTK_WIDGET (menu_item)->parent);
+
+      if (menu->parent_menu_item)
+        gtk_widget_queue_draw (GTK_WIDGET (menu->parent_menu_item));
+    }
 }
 
 void